1. Technical Field
The present invention relates to constellation re-arrangement and bit grouping in modulation schemes and, in particular, to methods and systems for performing such grouping and re-arrangement in a modulation scheme that has variable bit reliability and hybrid automatic repeat request error control.
2. Description of the Related Art
A convolutional turbo code (CTC) with code rate ⅓ has been adopted by the IEEE 802.16m System Description Document (SDD) and included in the IEEE 802.16m Amendment Working Document (AWD), defining a new ARP interleaver table. The IEEE 802.16e standard defines procedures for CTC subpacket generation to generate the subpackets for rate matching in the case of packet transmission with Hybrid Automatic Repeat reQuest (HARQ). For the high order modulations that will be supported in IEEE 802.16m, e.g. 16 QAM or 64 QAM, the bit grouping method that is described in IEEE 802.16e is not optimal.
When using HARQ, there are sometimes overlapped bits between two (re)transmission blocks. When the same modulation form is applied for both transmissions, the decoding performance after bit-level Chase combining (wherein every re-transmission comprises the same information as the original transmission) will be degraded significantly if the same bits from two transmission blocks mapped to the bits with the same reliabilities in a high order quadrature amplitude modulation (QAM). This happens because, if a given bit is placed in a low-reliability position in the QAM symbol, retransmitting the exact same symbol will continue to expose that bit to a higher likelihood of failure. To overcome the performance degradation caused by same-constellation mapping in re-transmission, constellation rearrangement (CoRe) was proposed as a mechanism and included in the IEEE 802.16m SDD.
However, the previously published CoRe schemes suffer either from sub-optimal reliability or from a lack of a simple implementation. This produces an unfortunate tradeoff between using a better-performing code and a cheaper to implement code.